package auxiliares;

import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.util.Enumeration;
import java.util.Hashtable;
import java.util.Properties;

public class Configuracion {
	final public static String CONFIGURACION_ARMAS = "configuracion/arma.properties";
	final public static String CONFIGURACION_MULTIPLICADORES = "configuracion/multiplicadores.properties";
	final public static String CONFIGURACION_BARCOS_BASE = "configuracion/barco_base.properties";
	final public static String CONFIGURACION_BARCOS = "configuracion/barco.properties";
	final public static String CONFIGURACION_PUERTOS = "configuracion/puerto.properties";
	final public static String CONFIGURACION_POSICIONES = "configuracion/posiciones.properties";
	final public static String CONFIGURACION_IDIOMAS = "configuracion/idiomas.properties";

	private Properties properties;
	static private Hashtable<String, Configuracion> instancias;

	private Configuracion(String _configFile) throws FileNotFoundException, IOException {
		properties = new Properties();
		properties.load(new FileInputStream(Global.getInstance().getProperty(Global.SILVER_RIVER_PATH) + _configFile));
	}

	public static Configuracion getInstancia(String _configFile) throws FileNotFoundException, IOException {
		if (instancias == null) {
			instancias = new Hashtable<String, Configuracion>();
		}
		if (!instancias.containsKey(_configFile)) {
			instancias.put(_configFile, new Configuracion(_configFile));
		}
		return instancias.get(_configFile);
	}

	public static String rutaArchivoIdiomas(String _idioma) {
		return "configuracion/" + _idioma + ".properties";
	}

	public String getProperty(String _pName) {
		return properties.getProperty(_pName);
	}

	public void setProperty(String _pName, String _pVal) {
		properties.setProperty(_pName, _pVal);
	}

	public Integer getCount() {
		return properties.size();
	}

	public Enumeration<Object> getKeys() {
		return properties.keys();
	}
}